Maven একটি শক্তিশালী বিল্ড টুল যা Java প্রোজেক্টের ডিপেনডেন্সি ম্যানেজমেন্ট, বিল্ডিং, টেস্টিং, এবং ডিপ্লয়মেন্ট প্রক্রিয়া সহজ করে তোলে। Maven Release Plugin একটি গুরুত্বপূর্ণ টুল যা প্রোজেক্টের ভার্সন ম্যানেজমেন্ট এবং রিলিজ প্রক্রিয়া অটোমেট করার জন্য ব্যবহৃত হয়। এটি স্বয়ংক্রিয়ভাবে ভার্সন ইনক্রিমেন্ট করতে, রিলিজ প্রস্তুতি নিতে এবং প্রোজেক্টের নতুন রিলিজ তৈরি করতে সহায়তা করে।
এই গাইডে আমরা Maven Release Plugin ব্যবহার করে কিভাবে ভার্সন ম্যানেজমেন্ট করা যায় এবং কিভাবে প্রোজেক্টের নতুন রিলিজ তৈরি করা যায় তা দেখব।
১. Maven Release Plugin Overview
Maven Release Plugin মূলত দুটি কাজ করে:
- Version Management: এটি প্রোজেক্টের ভার্সন ইনক্রিমেন্ট করে, যেমন
1.0-SNAPSHOTথেকে1.0.0(release) বা নতুন1.1-SNAPSHOTভার্সন তৈরি করা। - Release Process: এটি রিলিজ প্রস্তুতি নিতে, সোর্স কোডে পরিবর্তনগুলো কমিট করে এবং রিলিজ রেপোজিটরিতে নতুন সংস্করণ পুশ করার জন্য ব্যবহৃত হয়।
এই প্লাগইনটি ডেভেলপারদের সহজভাবে ভার্সন নিয়ন্ত্রণ এবং রিলিজ প্রস্তুতি সম্পন্ন করতে সাহায্য করে।
২. Maven Release Plugin কনফিগারেশন
প্রথমে, আপনাকে pom.xml ফাইলে Maven Release Plugin কনফিগার করতে হবে। নিচে একটি সাধারণ কনফিগারেশন দেখানো হলো:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.0.0-M1</version>
<executions>
<execution>
<goals>
<goal>prepare</goal>
<goal>perform</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
এখানে, maven-release-plugin এর দুটি goal (prepare এবং perform) কনফিগার করা হয়েছে:
- prepare: রিলিজ প্রক্রিয়ার প্রস্তুতি নেয়, ভার্সন ইনক্রিমেন্ট করে এবং রিলিজ ট্যাগ তৈরি করে।
- perform: রিলিজ প্রক্রিয়াটি সম্পন্ন করে এবং নতুন রিলিজ রেপোজিটরিতে ডেপ্লয় করে।
৩. Maven Release Plugin-এর মাধ্যমে Version Management
Maven Release Plugin ব্যবহার করে প্রোজেক্টের ভার্সন ইনক্রিমেন্ট এবং রিলিজ তৈরি করা যেতে পারে। এটি prepare এবং perform দুটি স্টেপে কাজ করে।
৩.১ Prepare Phase (রিলিজ প্রস্তুতি)
prepare goal মাভেনের রিলিজ প্রক্রিয়ার প্রথম স্টেপ। এটি সোর্স কোড থেকে রিলিজ ট্যাগ তৈরি করে এবং পম ফাইলে ভার্সন ইনক্রিমেন্ট করে। এছাড়া, এটি নতুন রিলিজের জন্য SNAPSHOT ভার্সন সেট করে এবং সংশ্লিষ্ট পরিবর্তনগুলো কমিট করে।
Maven Command:
mvn release:prepare
এই কমান্ডটি কিছু কাজ করবে:
- বর্তমান
SNAPSHOTভার্সনকে রিলিজ ভার্সনে পরিবর্তন করবে। - প্রোজেক্টে পরিবর্তনগুলো git commit করবে।
- একটি নতুন git tag তৈরি করবে।
- রিলিজ ভার্সন সঠিকভাবে কমিট হওয়ার পরে SNAPSHOT ভার্সন পুনরায় ইনক্রিমেন্ট করা হবে।
৩.২ Perform Phase (রিলিজ সম্পন্ন করা)
perform goal হল রিলিজ প্রক্রিয়ার দ্বিতীয় স্টেপ। এটি রিলিজের সোর্স কোড ও রিলিজ রেপোজিটরিতে ডেপ্লয়মেন্ট সম্পন্ন করে।
Maven Command:
mvn release:perform
এটি কাজ করবে:
- সোর্স কোডের ডিপ্লয়মেন্ট সম্পন্ন করবে।
- রিলিজ রেপোজিটরিতে নতুন ভার্সন পুশ করবে।
৪. Version Management Workflow with Maven Release Plugin
Maven Release Plugin ব্যবহার করে ভার্সন ম্যানেজমেন্টের পুরো প্রক্রিয়া সহজ করা যায়। নিচে পুরো প্রক্রিয়াটি বর্ণনা করা হলো:
SNAPSHOTভার্সন থেকে রিলিজ ভার্সনে পরিবর্তন:mvn release:prepareকমান্ডটি1.0-SNAPSHOTভার্সনকে1.0.0(release version) এ পরিবর্তন করবে।- সোর্স কোড কমিট এবং ট্যাগ তৈরি: এটি সোর্স কোডের সমস্ত পরিবর্তন কমিট করে এবং একটি নতুন রিলিজ ট্যাগ তৈরি করে।
- রিলিজ রেপোজিটরিতে পুশ:
mvn release:performকমান্ডটি নতুন রিলিজ প্যাকেজ রেপোজিটরিতে পুশ করবে। - SNAPSHOT ভার্সন পুনরায় ইনক্রিমেন্ট: রিলিজ প্রক্রিয়া শেষ হলে,
SNAPSHOTভার্সন আবার পূর্বাবস্থায় ফিরে আসে, যেমন1.1-SNAPSHOT।
৫. Maven Release Plugin এর সাহায্যে Versioning Example
এখানে একটি বাস্তব উদাহরণ দেওয়া হলো যেখানে Maven Release Plugin ব্যবহার করে ভার্সন ইনক্রিমেন্ট এবং রিলিজ প্রক্রিয়া সম্পন্ন করা হচ্ছে।
উদাহরণ: POM.xml কনফিগারেশন
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.0.0-M1</version>
<executions>
<execution>
<goals>
<goal>prepare</goal> <!-- Prepare the release -->
<goal>perform</goal> <!-- Perform the release -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
প্রক্রিয়া:
- prepare:
SNAPSHOTভার্সন →1.0.0ভার্সন।- রিলিজ ট্যাগ তৈরি।
- perform:
- রিলিজ প্যাকেজ ডেপ্লয়মেন্ট।
৬. Maven Release Plugin এর সুবিধা
- Version Control: ভার্সন ইন্টিগ্রেশন এবং রিলিজ ভার্সন স্বয়ংক্রিয়ভাবে পরিবর্তন করে।
- Automated Release Process: রিলিজ ট্যাগ তৈরি এবং সোর্স কোড কমিট করা সহজ হয়ে যায়।
- CI Integration: মাভেন রিলিজ প্রক্রিয়া CI টুলস যেমন Jenkins বা GitLab CI এর সাথে সহজে ইন্টিগ্রেট করা যায়।
সারাংশ
Maven Release Plugin Java প্রোজেক্টে version management এবং release process স্বয়ংক্রিয়ভাবে পরিচালনা করতে ব্যবহৃত হয়। এটি prepare এবং perform goal এর মাধ্যমে প্রোজেক্টের ভার্সন ইনক্রিমেন্ট এবং রিলিজ ডেপ্লয়মেন্ট সম্পন্ন করে। এই প্লাগইনটি ভার্সন কন্ট্রোল এবং ডিপ্লয়মেন্ট প্রক্রিয়া সহজ এবং দ্রুত করতে সহায়তা করে, যা CI/CD প্রক্রিয়া আরও কার্যকরী করে তোলে।
Read more